import { useState } from 'react';

const useTimer = (interval, handler) => {
   const [isTimerOpen, setTimerOpen] = useState(false);

   useEffect(() => {
      let timer;

      // 启动定时器
      if (isTimerOpen) {
         timer = setInterval(() => {
            handler();
         }, interval);

         // 第一次加载时手动触发一次请求
         handler();
      } else {
         // 清除定时器
         clearInterval(timer);
      }

      // 在组件卸载时清除定时器，防止内存泄漏
      return () => {
         clearInterval(timer);
      };
   }, [isTimerOpen]); // 当 isTimerOpen 改变时重新运行 useEffect

   return {
      setTimerOpen,
   };
};

export default useTimer;
